// pages/register/register.js
Page({
  data: {
    username: '',
    password: '',
    confirmPassword: '',
    phone: '',
    verificationCode: '',
    errorMsg: '',
    isLoading: false,
    countdown: 0,
    timer: null,
    step: 1, // 1: 填写信息, 2: 验证手机
    agreement: false
  },

  // 输入用户名
  inputUsername(e) {
    this.setData({
      username: e.detail.value,
      errorMsg: ''
    });
  },

  // 输入密码
  inputPassword(e) {
    this.setData({
      password: e.detail.value,
      errorMsg: ''
    });
  },

  // 输入确认密码
  inputConfirmPassword(e) {
    this.setData({
      confirmPassword: e.detail.value,
      errorMsg: ''
    });
  },

  // 输入手机号
  inputPhone(e) {
    this.setData({
      phone: e.detail.value,
      errorMsg: ''
    });
  },

  // 输入验证码
  inputVerificationCode(e) {
    this.setData({
      verificationCode: e.detail.value,
      errorMsg: ''
    });
  },

  // 切换同意协议
  toggleAgreement() {
    this.setData({
      agreement: !this.data.agreement,
      errorMsg: ''
    });
  },

  // 发送验证码
  sendVerificationCode() {
    const { phone } = this.data;

    // 简单的手机号验证
    if (!/^1\d{10}$/.test(phone)) {
      this.setData({ errorMsg: '请输入正确的手机号' });
      return;
    }

    // 开始倒计时
    this.setData({ countdown: 60 });

    // 设置定时器
    this.data.timer = setInterval(() => {
      if (this.data.countdown <= 1) {
        clearInterval(this.data.timer);
        this.setData({ countdown: 0 });
      } else {
        this.setData({ countdown: this.data.countdown - 1 });
      }
    }, 1000);

    // 模拟发送验证码
    wx.showToast({
      title: '验证码已发送',
      icon: 'success',
      duration: 2000
    });

    // 这里应该是实际的发送验证码API请求
    // wx.request({
    //   url: 'https://your-api.com/send-code',
    //   method: 'POST',
    //   data: { phone },
    //   success: (res) => {
    //     // 处理发送成功
    //   },
    //   fail: (err) => {
    //     // 处理发送失败
    //   }
    // });
  },

  // 下一步
  nextStep() {
    const { username, password, confirmPassword, agreement } = this.data;

    // 表单验证
    if (!username.trim()) {
      this.setData({ errorMsg: '请输入用户名' });
      return;
    }

    if (username.length < 4) {
      this.setData({ errorMsg: '用户名至少需要4个字符' });
      return;
    }

    if (!password.trim()) {
      this.setData({ errorMsg: '请输入密码' });
      return;
    }

    if (password.length < 6) {
      this.setData({ errorMsg: '密码至少需要6个字符' });
      return;
    }

    if (password !== confirmPassword) {
      this.setData({ errorMsg: '两次输入的密码不一致' });
      return;
    }

    if (!agreement) {
      this.setData({ errorMsg: '请阅读并同意用户协议' });
      return;
    }

    // 进入下一步
    this.setData({ step: 2, errorMsg: '' });
  },

  // 提交注册
  submitRegister() {
    const { username, password, phone, verificationCode } = this.data;

    // 验证码验证
    if (!verificationCode.trim()) {
      this.setData({ errorMsg: '请输入验证码' });
      return;
    }

    if (verificationCode.length !== 6) {
      this.setData({ errorMsg: '验证码应为6位数字' });
      return;
    }

    this.setData({ isLoading: true });

    // 模拟注册请求
    setTimeout(() => {
      // 这里应该是实际的注册API请求
      // wx.request({
      //   url: 'https://your-api.com/register',
      //   method: 'POST',
      //   data: { username, password, phone, verificationCode },
      //   success: (res) => {
      //     // 处理注册成功
      //   },
      //   fail: (err) => {
      //     // 处理注册失败
      //   }
      // });

      // 模拟注册成功
      const mockUserInfo = {
        id: 'new' + Date.now(),
        username: username,
        nickname: username,
        avatar: '/images/home-active.png'
      };

      // 保存登录状态和用户信息
      wx.setStorageSync('token', 'mock-token-' + Date.now());
      wx.setStorageSync('userInfo', mockUserInfo);

      // 更新全局状态
      getApp().globalData.isLoggedIn = true;
      getApp().globalData.userInfo = mockUserInfo;

      this.setData({ isLoading: false });

      wx.showToast({
        title: '注册成功',
        icon: 'success',
        duration: 2000
      });

      // 注册成功后跳转到首页
      setTimeout(() => {
        wx.switchTab({
          url: '/pages/index/index'
        });
      }, 2000);
    }, 1500);
  },

  // 返回上一步
  prevStep() {
    this.setData({ step: 1 });
  },

  // 跳转到登录页面
  goToLogin() {
    wx.navigateBack();
  },

  // 跳转到用户协议页面
  goToAgreement() {
    // 这里可以跳转到用户协议页面
    wx.showModal({
      title: '用户协议',
      content: '这是用户协议内容...',
      showCancel: false
    });
  },

  onUnload() {
    // 页面卸载时清除定时器
    if (this.data.timer) {
      clearInterval(this.data.timer);
    }
  }
})
